Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c语言中为数组元素赋值? #包括 void main() { 字符**变量; 整数计数=0 变量=(char**)malloc(sizeof(char*)*100); 对于(i=0;i_C - Fatal编程技术网

如何在c语言中为数组元素赋值? #包括 void main() { 字符**变量; 整数计数=0 变量=(char**)malloc(sizeof(char*)*100); 对于(i=0;i

如何在c语言中为数组元素赋值? #包括 void main() { 字符**变量; 整数计数=0 变量=(char**)malloc(sizeof(char*)*100); 对于(i=0;i,c,C,此处 要分配指针,请指定指针的正确大小,即char*,如下所示: variable=(char **)malloc(sizeof(char)*100); 或者像这样更好: variable = malloc(100 * sizeof(char*)); 顺便说一句:在C语言中,不需要强制转换malloc/calloc/realloc的结果,也不建议这样做 按照上述规则/建议,此行 variable = malloc(100 * sizeof(*variable)); 最好是这样 vari

此处

要分配指针,请指定指针的正确大小,即
char*
,如下所示:

variable=(char **)malloc(sizeof(char)*100);
或者像这样更好:

variable = malloc(100 * sizeof(char*));

顺便说一句:在C语言中,不需要强制转换malloc/calloc/realloc的结果,也不建议这样做


按照上述规则/建议,此行

variable = malloc(100 * sizeof(*variable));
最好是这样

variable[i]=(char *)malloc(sizeof(char)*11);

最后,这个电话很危险:

variable[i] = malloc(11 * sizeof(*variable[i]));
由于它往往会溢出
变量[count]
,因此通过告诉
scanf()
最大扫描量来保存它,方法是:

scanf("%s",variable[count]);

而且是

scanf("%10s", variable[count]); /* Leave one (10=11-1) spare for the C-"string"'s 0-terminator. */

变量
的类型是
char**
,那么
变量
应该指向
char*
列表,而不是
char
列表

因此,
variable=(char**)malloc(sizeof(char)*100);
应该是
variable=(char**)malloc(sizeof(char*)*100);

顺便说一句,
malloc()
之前的类型转换是不必要的


现在我想给变量[count]中的字符串赋值,例如:如果变量[count]包含字符串“abc”,那么我想给abc赋值20,如果我使用printf(“%d”,abc),那么它应该打印20


您希望将
variable[count]
的值视为变量。不幸的是,您不能这样做。C是一种静态编程语言,这意味着您不能像在动态编程语言中那样在运行时创建变量

但C的强大功能足以让您模拟这个过程

int main(void)

%d
打印整数,而不是字符串。
“如果变量[count]包含字符串abc,那么我想将20分配给abc”
…因此..如果您想要字符串数组,那么您想将整数分配给字符串?您是指
abc
是变量还是字符串文字
“abc”
?您是指包含
“20”的字符串吗?”
?是的,abc应被视为一个变量,并被赋予整数值20C是一种静态编程语言,这意味着您不能在运行时创建变量。
int main(void)
typedef struct var {
    char *name;
    int val; /* or whatever type you want */
} var_t;

var_t variable[num_of_vars]; /* or whatever data structure that you can search */