1樓:匿名使用者
至少存在2處錯誤:
1.s1=(char *) malloc (size); 這句表示式重新對s1賦值(被系統賦給一個隨機的地址值),因此,最後主函式中傳入的實參指向了一個隨機的字元首地址,也就是開始處的亂碼字元(這段亂碼字元的長度恰好是s1的長度)。
2.沒有對s1進行字串尾的處理,應該賦值'\0'。否則系統隨機指定'\0'給s1的某一位置,因此後面必然是一串亂碼。
建議改正為:
1.去掉s1=(char *) malloc (size); 這一行2.return s1;前面加上s1[i] = '\0';
2樓:匿名使用者
請按如下進行子函式修改
char *rets=null ; //新增一個變數,不能用s1,否則會丟失原來s1中的內容。
rets=(char *) malloc (size);
//先將s1存到rets
while(*s1)
//繼續將s2追加到rets後面
while(*s2)
rets[j]='\0'; //增加串結束符return rets;
3樓:匿名使用者
#include
#include
#include
using namespace std;
char* strrev(char* s1,const char* s2)
int main()
4樓:
第一,如果你想手動分配記憶體的話,那麼你得將主函式中的s1用 char*而不是一個字元陣列。
第二,你的malloc函式用的不對,應該用realloc第三,你應該在字串最後加上字串結束符0第四,出現 屯屯 肯定是因為那塊記憶體沒有定義你先把這些改了再看看吧。
5樓:匿名使用者
當你malloc的時候,s1已經被指向了你新開闢的記憶體塊。所以「abcd」處顯示別的東西。
正確的做法是申請記憶體塊,把s1和s2依次放進去,然後返回新的記憶體塊地址。
6樓:good_曌曌
找到問題了!
你s1重新申請了大的空間,但是沒有把原來的s1裡面的值附進去。
解決辦法:在函式裡重新定義char* s3,讓s3申請新空間,再把s1,s2的值複製進去。
for(int k=0;k
7樓:匿名使用者
字串以'\0'結尾,沒有這個結束標誌符的話,輸出會出亂碼的
請教一個簡單的c++程式
8樓:匿名使用者
我沒有vs環境,在別的編譯器編譯通過了,你再試試#include
using namespace std;
class box
;//靜態變數必須初始化才能使用!相當於宣告一個全域性變數int box::height = 0;
void box::set_box()
void box::set_heigth()int box::volume()
int main()
return 0;}
9樓:滄海雄風
cin>>k;
box box[k]; 這裡陣列的話 要動態陣列
10樓:咖啡__心情
/* int i;for(i=0;i /* void box::display()*/ 是不是因為這兩個地方用了註釋。 一個c++簡單程式的源** 11樓:匿名使用者 #include #include using namespace std; void main() while(c<=0); c=sqrt(c); cout<<"此數的平方根為"<>a; cout<<"請輸入b的值="; cin>>b; cout<<"請輸入c的值="; cin>>c; x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); if (b*b-4*a*c<0) else }else else}} }希望對你有所幫助。 12樓:匿名使用者 #include int main() 上面是一個很簡單的程式,希望你能夠從中有所領悟。加油啊! 13樓:匿名使用者 #include int main() 上面是輸出一行文字。 14樓:匿名使用者 這個是遊戲挑顏色用的 #include #include using namespace std; void colour(int a) int main() while(check!=0) if(check==0)}} dare someone to do sth估計某人不敢 或沒有能力 做某事,激某人做某事 dare to be 敢於做 dare do sth 敢於做 we dare not tempt them with weakness.我們不敢以怯弱來專引誘他們。dare在這裡作情態動詞,屬類似must,m... 窗體加一個文字框。if text1.text z1z1z1z1 thenmsgbox 密碼正確 shell c program files cs1.6 cstrike.exe unload me else msgbox 密碼錯誤 text1.text end if lable.caption tim... 進行浮點數程式設計時,如果沒有注意,常常會出現輸出類似 1.ind,1.inf 或者 nan,inf 之類奇怪的輸出。這通常隱含了浮點數操作的異常。特殊浮點數的含義 1.inf inf 這個值表示 無窮大 infinity 的縮寫 即超出了計算機可以表示的浮點數的最大範圍 或者說超過了 double...請教一句簡單的英語翻譯,請教英語達人一個簡單的英語句子翻譯,謝謝
很簡單的vb小程式,高手快來啊,很簡單的一個vb小程式,高手快來啊!
簡單的c語言程式輸出一個簡單的c語言程式輸出1IND00不知道哪裡錯