c - 访问 char 指针数组中的 char 序列

标签 c pointers

我在将特定指针分配给另一个字符序列(字符串)时遇到问题;

#include<stdio.h>
void setInformations(char *informations[], char *contests_name[]);
int main(void) {
   char *informations[]={"","","",""};
   char *contests_name[]={"cycle_race","swim","running race"};
   int totalTime=0;
   setInformations(informations,contests_name);
   getch();
   return 0;
}

void setInformations(char *informations[], char *contests_name[]) {
    printf("Competitor's name: ");
    scanf("%s",*informations[0]);
    printf("%s",informations[0]);
}

我知道问题是将字符串分配给 char 类型的指针。我怎样才能替换它(strcpy?)

最佳答案

从scanf中取出*:

 scanf ("%s", informations[0]);

...并为信息数组分配空间

 char* informations[NUMBER_OF_INFORMATIONS][MAX_NAME_LENGTH] = {{'\0'}};

这样 scanf 将有空间放置信息。

关于c - 访问 char 指针数组中的 char 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26760635/

相关文章:

c - 结构中指针变量的大小

c++ - 如何将 boost::shared_ptr<> 变成引用 (&)?

c - 读取包含二维矩阵的 .txt 文件,fscanf 仅从 .txt 文件中获取第一个数据元素

C 语言,如何打印指针 - 输出不正确

在 C 中的 for 循环中创建多个 pthread

c - SDL_MapRGB 崩溃且没有错误消息

c - 确定 Big-O 复杂性

c++ - 如何使用 void 指针而非对象访问类的成员变量

c++ - 我可以在 main() 函数之外使用 GetAsyncKeyState() 吗?

c - 如何在结构中交换数组的结构元素 - C