如何使用malloc获取c中指针的内存地址,然后在该地址分配char数组?

时间:2015-04-06 02:28:23

标签: c arrays pointers memory

我正在尝试在C中创建一个字符串,它只是一个数据类型为char的数组。我试图有一个指针,然后分配一个char数组的值。这就是我到目前为止所做的:

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

// Now I have a pointer, so if I wanted to print out the pointer of the spot 
// in memory that is saved I can do the following:
printf("%p", string);

// That gives me the pointer, now I want to assign an array at that address

// *string gives me that data stored at the pointer
*string = "Array of chars?";
printf("%s", *string);

我想知道我做错了什么?

不幸的是我需要使用malloc,但请随意告诉我一个更好的方法,以及使用malloc的解决方案。

谢谢你们!

1 个答案:

答案 0 :(得分:3)

您应该写下:

,而不是您声明的两个变量
char* string = malloc(sizeof(char) * <insert number of chars plus one here>);

你应该写:

string = "Array of chars";
printf("%s", string); 

打印字符串。