為什麼總是出現記憶體不能read的情況,而且如果把陣列改成int型別,可以讀,但讀出來的數不對?非常謝謝

2022-06-10 17:41:50 字數 3478 閱讀 1880

1樓:

把printf("%s\n",a[i])改成printf("%c",a[i]),再在其後加一句printf("\n")。 另:好像沒有"rw"這個控制符。

如果是生成並讀寫檔案要用"w+",而若開啟並讀寫則用"r+"。 還有,你唯讀出來乙個字元,所以輸出除第乙個字元外一般是隨機的……

2樓:匿名使用者

printf("%s\n",a[i]);如果你用int陣列,這邊要改為 printf("%d\n",a[i]);

3樓:匿名使用者

需要將printf("%s\n",a[i]); 改為 printf("%c\n",a[i]);

size_t fread(void *buffer, size_t size, size_t count, file *stream);

從乙個檔案流中讀資料,讀取count個元素,每個元素size位元組.如果呼叫成功返回count.如果呼叫成功則實際讀取size*count位元組

在此你只在a陣列中存入了乙個字元,for迴圈中輸出了兩個字元,導致第二個字元讀不出來

c語言程式設計顯示記憶體不能為read

4樓:匿名使用者

該提示出現在執行階段,表示程式執行時訪問了不可以訪問的記憶體,即訪問越界。

由於提示是不能read,所以是出現在讀訪問。一般有如下幾種情況:

1 對陣列訪問越界。

常見於陣列的迴圈訪問,或以變數為下標導致超出陣列定義範圍。

對於c語言陣列,定義或分配了n個元素的空間時,下標或指標移動只允許在0~n-1範圍內進行,超出這個範圍即為越界,會導致不可預知後果,其中一種即為記憶體不能read。

2 對字串訪問或輸出時,字串中沒有賦值結束符\0.

c語言的字串操作,均以\0作為結束標誌。

如果字串中沒有指定結束符,那麼函式會一直訪問下去,導致超過字串定義的空間範圍,從而出現記憶體不能為read提示。

3 指標強制轉換。

當目標指標型別所占用空間,超過了原本指標指向位址分配的內容時,按照新指標訪問,會導致越界。

比如定義乙個10位元組的結構體變數,然後把位址強制賦值給乙個100位元組的結構體指標型別,那麼通過後者去訪問後90位元組範圍時,就屬於越界操作,有可能出現記憶體不能read錯誤。

5樓:爽朗的小洛

#include

#define n 5

int main()

// if(i!=m)printf("%5d",a[i]);

// }

for(i = 0; i < n; i++)s--;}}

}for(i = 0; i < s; i++)return 0;

}可能還有些細節問題。吃飯去了 如果你發現什麼問題,說下額。。。。**還有問題。。。我回來修改下

6樓:謝應宸

我這邊執行好像沒出問題(結果肯定不對)

你用單步跟蹤的方式看下在哪一行掛掉的

7樓:阿冬

你在第一次執行j++之前沒有給j賦過初值啊。

8樓:匿名使用者

#define n 5

int main(array^args)

;int value1[n];

for(i=0; i< n; i++)

for( i = 0; i < n; i++) }}j = 0;

for( i = 0; i < n; i++ )value1[j] = value[i];

j++;

}for(i=0;i

在c++中char型別的陣列裡邊裝的是數字,如何轉換為int型別?

9樓:會飛的小兔子

cha和rint陣列轉換,例:

inti[2]=

charc[2]=

兩者轉換**:

inta[2]=;

charc[2];

for(inti=0;i<2;i++)c[i]=a[i];

int是將乙個數值向下取整為最接近的整數的函式,為取整函式。

擴充套件資料char*、string、cstring這三種字串型別各有各的優點,比如cstring比較靈活,是基於mfc常用的型別,安全性也最高,但可移植性最差。string是使用stl時必不可少的型別,所以是做工程時必須熟練掌握的;char*是從學習c語言開始就已經和我們形影不離的了,有許多api都是以char*作為引數輸入的。

char*型別:是字元指標,在一定條件下等同於字元陣列,如果字元陣列的最後元素是"\0",則是乙個c風格的字串。

10樓:匿名使用者

在標頭檔案中新增

#include

#include

void main()

{char *s;

int n;

s="1234";

n=atoi(s);

cout<:1234

標頭檔案中新增#include

用 x=atof(s)可轉化為double型,用(float)x可轉為float型

11樓:匿名使用者

#include

void main()

//用int()也可以換的方便

12樓:匿名使用者

char str="10";

int num=strtol(str,null,10);

其中,把10換成16可以

獲得16進製制數(即num=16),換成其他數字,可以獲得其他進製的數(如換成8的話,n=8)

13樓:匿名使用者

#include

#include

#include

using namespace std;

template

t lexical_cast(u u)

int main()

14樓:匿名使用者

char dd[n];//設陣列的長度是nint ee[n];

for(int i=0;i

安裝遊戲時出現 該記憶體不能為read

15樓:華碩服務

1 ,電腦有惡意軟體,或產生了惡意程式,建議清理垃圾,查殺惡意軟體,完成後重啟電腦。如果不行建議恢復系統。

2,電腦記憶體出現問題,可以拔出記憶體擦下,重新插回去試試。

16樓:出綠柳本燕

為了檢測是否屬於硬體故障建議先重做系統,一般重做系統都會解決這個小問題。

17樓:鐸夏須淑

系統出毛病,某個軟體出錯了。就這樣~!用360或者別的軟體進行修復,更新!~優化系統。搞好了,在重啟,才裝遊戲1.還不行,要還想玩遊戲,就重灌吧!~

記憶體不能read,電腦記憶體不能read

這種情況一般是系統的問題。你的系統是聯想標配的麼?如果是的話用一鍵恢復試試看。有的時候錯誤操作也能倒是軟體報錯 記憶體不能read 1.執行一次幹bai淨啟動 1 du首先建立乙個還原點zhi 2 dao按windows功能鍵 r鍵,開啟執行版對話方塊 權 3 輸入msconfig後點確定,啟動系統...

玩遊戲時總是出現該記憶體不能為read?怎麼回事

很高興回答你的問題,希望可以幫到你 記憶體指令不能read,這是在電腦使用中經常出現的問題,記憶體是主機板上的儲存部件,是cpu直接與之溝通,並用其存放當前正在使用的 即執行中 的資料和命令的重要部件。當你用鍵盤或滑鼠輸入某個命令後,cpu就會解釋命令並將指令或程式載入到記憶體中,這樣程式才能夠被執...

該記憶體不能為read,該記憶體不能為read怎麼解決

記憶體指令不能read或written,這是在電腦使用中經常出現的問題,記憶體是主機板上的儲存部件,是cpu直接與之溝通,並用其存放當前正在使用的 即執行中 的資料和命令的重要部件。當你用鍵盤或滑鼠輸入某個命令後,cpu就會解釋命令並將指令或程式載入到記憶體中,這樣程式才能夠被執行。而一旦記憶體發生...