gpt4 book ai didi

C++ 更改由 int 变量和指向 long 问题的指针构成的结构的长度

转载 作者:行者123 更新时间:2023-11-28 08:20:50 25 4
gpt4 key购买 nike

我在 C++ 中创建了以下类型的结构:

struct longsir {
int len;
long *sir;
int isinitialised;};

现在,我必须修改结构的长度,为此我使用了以下函数:

longsir modlen(longsir *s, int newlen){
if (s ->isinitialised ==1 && newlen != s->len) {
if (newlen < s-> len) {
longsir a;
a.len=newlen;
a.isinitialised=1;
a.sir=new long[a.len];
int i;
for (i=0;i<newlen;i++){
a.sir[i]=s->sir[i];};
return a;}
else {
longsir a;
int i; int oldlen=s->len;
a.len=newlen;
a.isinitialised=1;
a.sir=new long[a.len];
for (i=0;i<(s->len);i++){
a.sir[i]=s->sir[i];};
cout <<"Introduceti restul elementelor din sir ";
//Code works till here
for(i=oldlen;i>newlen;i++){
cout <<"Introduceti elementele sirului cu numarul "<<i<<endl;
cin.clear();
cin >> a.sir[i];}
return a;}}}

因此,当我选择使用大于初始数组初始长度的值时,代码首先创建一个新数组,然后从旧数组复制数据并要求用户填写剩余的单元格来自标准输入。反正程序运行时只要求引入剩余的元素,然后自动初始化为0,为什么代码没有提示?我找不到关于这种情况的任何线索。非常感谢您的帮助。

附言你可以在 Pastebin 上看到完整的原始代码:the main functionthe header file

最佳答案

for(i=oldlen;i>newlen;i++){ 也许我

关于C++ 更改由 int 变量和指向 long 问题的指针构成的结构的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5896556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com