我有一个C代码,它创建一个char指针数组,如下所示:
char* arr[100];
Run Code Online (Sandbox Code Playgroud)
我使用此数组中的每个元素指向一个由另一个函数计算的字符串.所以基本上arr [0]会指向string1,arr [1]指向string2等.
这很好用.但是,现在要求用户指定字符串数作为参数,以使其更加灵活.
如何在对代码进行最小更改的情况下执行此操作?我知道我需要使用malloc.但是我在之前的所有赋值语句中都收到了很多警告.我更改了数组的声明如下:
char* arr = (char*)malloc(n * sizeof(char*)); //where n is provided by user
Run Code Online (Sandbox Code Playgroud)
我以为我只需要改变声明.现在所有的赋值语句都给出了警告("赋值使得没有强制转换的指针产生整数").以下是赋值语句的示例:
arr[i] = str; //where str is defined as char* and is calculated by another function
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
Way*_*Lue 10
如果你想创建一个数组char *,你需要一个char **arr.把它想象成一个数组char *- 如果你有一个数组int,你会有int *.既然你有一个阵列char *s,你需要char **.
char** arr = malloc(n * sizeof(char*));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |