#include<stdio.h>
char *myString()
{
char buffer[6] = {0};
char *s = "Hello World!";
for (int i = 0; i < sizeof(buffer) - 1; i++)
{
buffer[i] = *(s + i);
}
return buffer;
}
int main(int argc, char **argv)
{
printf("%s\n", myString());
return 0;
}
myString()中buffer分配在栈区
函数结束栈区自动释放,只会有一个野指针显示
“优先使用对象组合,而不是继承”是面向对象设计的第二原则。
char *myString()
{
char buffer[6] = {0};
char *s = "Hello World!";
for (int i = 0; i < sizeof(buffer) - 1; i++)
{
buffer[i] = *(s + i);
}
return buffer;
}
int main(int argc, char **argv)
{
printf("%s\n", myString());
return 0;
}
myString()中buffer分配在栈区
函数结束栈区自动释放,只会有一个野指针显示
“优先使用对象组合,而不是继承”是面向对象设计的第二原则。
本文介绍了一个简单的C语言函数实现字符串复制的过程,展示了如何手动将一个字符串复制到另一个字符数组中,并讨论了函数运行后可能出现的问题,如野指针等。
853

被折叠的 条评论
为什么被折叠?



