c++函數內部可以返回函數內部定義的指針 但是不能返回函數內部定義的數組


1、返回數組

// demo.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include<stdio.h>
char *myString()
{
    char buffer[]="hello";
    char *s = "Hello World!";
    
    return buffer;
}
int main(int argc, char **argv)
{
    printf("%s\n", myString());
    return 0;
}

運行結果:輸出了未知的數據

隨着函數運行的結束,棧區內存釋放,字符數組也就不存在了,所以會產生野指針,輸出結果未知

image

二、返回指針

// demo.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include<stdio.h>
char *myString()
{
    char buffer[]="hello";
    char *s = "Hello World!";
    
    return s;
}
int main(int argc, char **argv)
{
    printf("%s\n", myString());
    return 0;
}

運行結果:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM