C:这个char指针赋值有什么问题?

tao*_*tao 0 c string pointers character variable-assignment

一个新手问题:

我正在练习赋予char指针,但发现没有打印出来.这是代码:

#include <stdio.h>

int main (void)
{
    char * option_string = NULL;
    option_string = (char*)malloc(sizeof(5));
    memset(option_string, 0, sizeof(char) * 5);

    int j;
    for ( j = 0; j < 5; j++)
    {
        *option_string++ = 'a';
    }

    printf("print options_string: %s\n", option_string); //!nothing was printed out!
    free(option_string);
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Nov*_*kov 11

您递增指针option_string,然后指针使其指向字符串末尾.

试试malloc(6);

for ( j = 0; j < 5; j++)
{
    option_string[j] = 'a';
}
Run Code Online (Sandbox Code Playgroud)

代替.


Gre*_*ill 8

你malloc(sizeof(5))好像错了.大小是5多少?(提示:不是5.)