gpt4 book ai didi

c - 在 C 中存储 char* 数组

转载 作者:行者123 更新时间:2023-11-30 21:33:44 24 4
gpt4 key购买 nike

我正在尝试创建并存储一个 char* 数组。

所以,首先我尝试了这个:

int main() {
char* values[3];
values[0] = "Hello";
values[1] = "Mew meww";
values[2] = "Miau miau =3";

for(int i=0; i<sizeof(values); i++)
printf("%s", values[i]);
}

它适用于此输出:

Hello Mew Mew Miau miau =3

如果我尝试:

printf("%s", "Tamaño del diccionario: ");
int tam;
scanf("%i", &tam);
char* dic[tam];
Word words[tam];

for(int i=0; i<tam; i++)
{
printf("Palabra %d: ",(i+1));
scanf("%32s", &dic[i]);
}

for(int i=0; i<tam; i++)
{
printf("%s",dic[i]);
printf("\n");
}

显示难以辨认的内容,例如“0xassdfsdf”

我该怎么做才能将其正确存储在内存中?

最佳答案

#include <stdio.h>
#include <stdlib.h>

int main(){
char* values[3];
values[0] = "Hello";
values[1] = "Mew meww";
values[2] = "Miau miau =3";

for(int i=0; i<sizeof(values)/sizeof(*values); i++)
printf("%s\n", values[i]);

printf("%s", "Size for dictionary: ");
int tam;
scanf("%i", &tam);
char *dic[tam];

for(int i=0; i<tam; i++){
printf("Palabra %d: ",(i+1));
dic[i] = malloc(33);
scanf("%32s", dic[i]);
}
for(int i=0; i<tam; i++){
printf("%s\n", dic[i]);
free(dic[i]);
}

return 0;
}

关于c - 在 C 中存储 char* 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24976837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com