gpt4 book ai didi

c - 指针数组的动态内存分配

转载 作者:太空狗 更新时间:2023-10-29 16:28:33 24 4
gpt4 key购买 nike

我正在尝试编写一个程序,从文本文件中读取一系列字符串并将它们存储在字符串数组中,为每个元素动态分配内存。我的计划是使用指针将每个字符串存储在一个数组中,然后随着读入的内容增加数组的大小。我很难理解为什么我下面的测试代码不起作用。这是一个可行的想法吗?

char *aPtr;
aPtr =(char*)malloc(sizeof(char));

aPtr[0]="This is a test";


printf("%s",aPtr[0]);

最佳答案

在 C 中,字符串是 char*T 类型的动态数组表示为指向 T 的指针,因此对于 char* 来说,它将是 char**,而不仅仅是您声明它的方式的 char*

毫无疑问,编译器已经发出了一些警告。请注意这些警告,它们通常可以帮助您了解该怎么做。

以下是开始测试的方法:

char **aPtr;
int len = 1; // Start with 1 string
aPtr = malloc(sizeof(char*) * len); // Do not cast malloc in C
aPtr[0] = "This is a test";
printf("%s",aPtr[0]); // This should work now.

关于c - 指针数组的动态内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068643/

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