android switch 未定义,在switch语句中初始化时未定义的变量?
問題本身就是一個(gè)明顯的答案.無論如何,這是我的代碼片段......
switch(cSet)...
case 8:{ //Special Characters
finalSet = special;
char* charSet = new char[special.size() + 1];
charSet[special.size()] = 0; //Append null terminator
memcpy(charSet, special.c_str(), special.size());
break;
}
case 9:{ //Alphnumeric and Special character
finalSet = all;
char* charSet = new char[all.size() + 1];
charSet[all.size()] = 0; //Append null terminator
memcpy(charSet, all.c_str(), all.size());
break;
}
...
請(qǐng)注意,這finalSet是類型std::string.我需要將其保存為字符數(shù)組.在這個(gè)語句之后,我charSet在switch語句之外調(diào)用:
for(int i = 0; charSet; i++)
printf("%s", charSet[i]);
現(xiàn)在,很明顯switch語句是有條件的,因此可能并不總是聲明變量.因此,Visual Studio 2012會(huì)拋出錯(cuò)誤" charSet未定義".不過,我charSet總是會(huì)定義我的switch語句的結(jié)構(gòu),或者程序?qū)⒃谶@種default情況下退出.
為了解決這個(gè)問題,我試圖charSet在switch語句的范圍之外聲明.但是,當(dāng)我這樣做時(shí),由于某種原因,編譯器會(huì)拋出讀取訪問錯(cuò)誤.
我很好奇如何解決這個(gè)問題.
任何建設(shè)性的意見表示贊賞.
在switch語句外聲明時(shí)出錯(cuò):
`Unhandled exception at 0x0F6616B3 (msvcr110d.dll) in cuda_comb.exe: 0xC0000005: Access violation reading location 0x00000061.`
總結(jié)
以上是生活随笔為你收集整理的android switch 未定义,在switch语句中初始化时未定义的变量?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新材料概念股 资金追捧的又一个赛道
- 下一篇: 金融投资有那些