如何在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 */