欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言打印字符亂碼和char*字符循環(huán)賦值時(shí)錯(cuò)誤問(wèn)題怎么解決

本篇內(nèi)容介紹了“c語(yǔ)言打印字符亂碼和char*字符循環(huán)賦值時(shí)錯(cuò)誤問(wèn)題怎么解決”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、桐柏ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的桐柏網(wǎng)站制作公司

1.打印字符亂碼

#include <stdio.h>
#include <string.h>
char *SYM="";
void change(){
    char tmp[10]="SYM";
    printf("%d\n",tmp);
    SYM=tmp;
}
int main(int argc, char *argv[])
{
    change();
    printf("%d\n",SYM);
    printf("%s\n",SYM);
    return 0;
}

解決方案:

tmp[10]是在子函數(shù)中分配的內(nèi)存空間,回到主函數(shù)后你還要引用那塊被銷(xiāo)毀了的內(nèi)存,打印出來(lái)的肯定是亂碼。
主要是分函數(shù)分配的空間在棧里面(tmp和tmp指向的字符串內(nèi)容),分函數(shù)結(jié)束后棧銷(xiāo)毀,空間全部釋放。
如果改成char *tmp則不會(huì)亂碼,函數(shù)里面的變量(tmp)還是在棧里面,但是tmp指向的字符串內(nèi)容則分配在堆中,
分函數(shù)結(jié)束后棧銷(xiāo)毀,空間全部釋放。但tmp指向的字符串內(nèi)容還存在,SYM中存了地址,可以訪問(wèn)。
不過(guò)這部分堆空間已經(jīng)是未分配的空間(垃圾空間),隨時(shí)可以被再次分配。所以雖然可以訪問(wèn)但是不安全。
如果必須使用,則把char tmp[10]在函數(shù)外面定義。

2.char*單個(gè)字符賦值

#include <stdio.h>
#include <malloc.h>
char *p="";
int main()
{
    int i;
    //p=(char*)malloc(8);
    for(i=0;i<7;i++)
    {
        p[i]='a';
    }
    p[i]='\0';
    printf("%s\n",p);
    return 0;
}

解決方案:

本程序編譯正常,運(yùn)行提示“段錯(cuò)誤 (核心已轉(zhuǎn)儲(chǔ))”,char *未分配內(nèi)存空間,所以不能操作數(shù)組,也就是不能單個(gè)字符來(lái)賦值。必須要用內(nèi)存來(lái)分配空間。即注釋部分去掉注釋,給指針?lè)峙鋬?nèi)存,則就可以操作了。

“c語(yǔ)言打印字符亂碼和char*字符循環(huán)賦值時(shí)錯(cuò)誤問(wèn)題怎么解決”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)站欄目:c語(yǔ)言打印字符亂碼和char*字符循環(huán)賦值時(shí)錯(cuò)誤問(wèn)題怎么解決
文章源于:http://chinadenli.net/article14/jiggde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站品牌網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)Google網(wǎng)站營(yíng)銷(xiāo)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化