2016-06-30 11 views
3

.asciiz文字列のサイズを決定する際には、終端文字を考慮する必要がありますか? 例えばMIPS:.asciizのサイズ?

.data 
string: .asciiz "Hello" 

"列" の大きさは5又は6(バイト)ですか?

ありがとうございます。あなたは、メモリ内の文字列は、例えば、それはだ6バイト

あなたは文字列の長さを数える関数によって返されるべきかについて尋ねている場合(STRLENのC関数、その後に格納されたバイト数について尋ねている場合

+2

データのサイズには、文字列の末尾にNULLバイトが含まれているため、6バイトを消費します。ただし、ASCIIZ文字列の長さは5文字です。私はあなたが使用したスペースを知りたいと思います、それは6バイトになります。 – gusbro

+1

@gusbroだから6バイトです。ありがとうございました。 –

答えて

2

)それはすべきです5

1

この特定のasciiz文字列は、6バイトの記憶域を必要とします。

プログラミングの状況では、文字列サイズを5と測定します。strlen()のように。

この文字列を使用すると、ループがNULL条件でテストされ、5回繰り返し実行される可能性があります。

、コピーこの文​​字列を格納し、あなたのコードは、おそらくループ(ループの外)、その後5回、及び、NULL終了を維持するために余分なNULL最後に「\ 0」文字を追加します。したがって、宛先ストレージスペースはstrlen()より1大きい必要があります。

-2

asciiのすべての文字は1バイトです。こんにちは5バイトです

1

ロバートと同意します。この場合、メモリの合計バイト数は6です。ただし、Paxymは高水準言語では文字列 'サイズ'を5と測定します。