c - 从 0 到 x 填充 char *array

标签 c arrays char

我在 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/

相关文章:

javascript - 如何使用 JavaScript 将长数组拆分为更小的数组

c# - C# 中字符串的 char* 指针

c - 读取STM32 MCU SPI数据寄存器的值

c - 线程: Passing struct to function

python - 提取 numpy 数组中最小值的索引

javascript - Lodash:过滤对象数组并检查是否为空

c++ - 如何重载<<操作符,使其仅影响类的成员?

c - 以太网帧中字段的原始 C 类型

c - 段错误(核心转储) Yacc/C

c - 虚拟 tty 中的管道使用