#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分配在栈区
函数结束栈区自动释放,只会有一个野指针显示
“优先使用对象组合,而不是继承”是面向对象设计的第二原则。