无法获得角色数组的正确输出

Not getting right Output of Character Array

本文关键字:输出 数组 角色      更新时间:2023-10-16

可能的重复:
指向本地变量的指针

#include <iostream>
using namespace std;
char* func();
int main() {
    char* str;
    str = func();
    cout<<str;
    return 0;
}
char*  func() {
    char * str;
    char p[] = "priyanka is a good girl";
    str = p;
    cout<<str<<"n";
    return str;
}

给出输出,

priyanka是个好女孩

priy

我不明白这里发生了什么,为什么给出一个不完整的数组作为输出。我对此有些新。请帮助。

您的函数func()返回指向本地变量的指针,后来在尝试访问它时会导致不确定的行为。

func2() char p[]中是在堆栈上初始化的局部变量。将指针返回堆栈变量是一个坏主意(并且也是未定义的行为),我认为当功能返回时,您的字符串" Priyanka是个好女孩"被覆盖。