结构体中字符数组赋值问题
OK,先看代码:#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
struct m{
char name;
};
int main(int argv, char **agrc)
{
m *head = (m*)malloc(sizeof(m));
head->name = {'h', 'u'};//error
char name = {'u', 'i'}; //right
strcpy(head->name, "huang"); //right
free (head);
getchar();
return 0;
}
在这里,为什么会出现head->name = {'h', 'u'};//error的情况?
[ 本帖最后由 zaijzhgh 于 2008-5-27 09:34 编辑 ] head->name是第31个数组元素...你却要放两个元素进去.
另,这里数组越界了... 原帖由 hjack 于 2008-5-27 09:35 发表 https://www.gdutbbs.com/images/common/back.gif
head->name是第31个数组元素...你却要放两个元素进去.
另,这里数组越界了...
,hjack,哈哈,真是不好意思,刚才写代码的时候先写char name = "huang";了,误导了思维,
修改一下:
int j = 0;
for(; j < 2; j++)
{
head->name = 'h';
}
head->name = '\0';
要是在面试的时候遇到这种低级错误那就真的over了…… 还是得鼓励一下的.....自己去想过..
页:
[1]