各位好
最近在自学C语言
有学长给我了他之前去面试时的考题 不过我们都是程式菜逼八
题目主要为找出程式码中有错误的地方
有些看不太懂哪边有问题 要烦请各位大大解答了 谢谢
1.
void test()
{
char a[32];
char b[48];
read(0,a,sizeof(a));
strcpy(b,a);
}
2.
char* fun();
void test
{
char *buf;
int len;
buf = fun();
len = strlen(buf);
buf[len-1] = '\0';
}
3.
int test(char *buffer)
{
char tmpline[256], *line;
if (buffer == NULL)
return 0;
memset(tmpline, 0, sizeof(tmpline));
line = strncpy(tmpline, buffer, sizeof(tmpline));
if (line == NULL)
return 0;
line[strlen(line)] = 0;
return 1;
}
4.
typedef struct list
{
char * next;
} list;
typedef struct z
{
list l;
} z;
void test()
{
z *x = malloc (sizeof(z));
if (!x)
return;
x->l.next=1;
free(x->l.next);
}
5.
c假设为>=0的整数
void test()
{
char *x = “0123456789”;
if (c)
x = malloc(1);
free(x);
}
这题run过程式后是free(x)这边出现error
是因为一开始指标字串x与后面分配的内存不一致吗?
6.
int *test(unsigned int n)
{
int aux;
int *p;
if (n == 1)
{
p = &aux;
}
else
{
p = (int *)malloc(n * sizeof(int));
}
return p;
}
此题是否为置底13诫的第5题那样
在函式中回传一个指向区域性自动变量的指标会失效?
以上几题百思不得其解 麻烦各位大大为蔡逼八解惑了
感谢!!