我在 c (gcc linux) 中遇到 char *array 的问题
在 debian 上它可以工作,但在另一个系统(yocto、raspbian)上会出现段错误
Debian 中的工作代码:
char *myarray;
for (i=0;i<999;i++){
printf(myarray, "%i", i);
//do something with string to compare in file
}
但是这个代码在另一个系统上出现错误,我尝试创建一个数组:
char *myarray[999]={"0","1","2"};
for (i=0;i<999;i++){
//do something with string[i] to compare in file
}
此代码也有效,但我不喜欢将数组从手填充到“999”
我还没有找到制作 char *string[arr]
的方法从“0”-“999”循环
最佳答案
好吧,你可以使用sprintf
-
char *array[1000];
for(int i=0;i<1000;i++){
array[i]=malloc(10*sizeof(**array)); //allocate memory to pointer
if(array[i]!=NULL){ //check return of malloc
sprintf(array[i],"%d",i);
}
}
注意 - 只需记住释放
分配的内存即可。
关于c - 从 0 到 x 填充 char *array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37069410/