(1) |
配列の要素IDの値が上限を超えた場合には、その値を配列の最大要素数(これまでは1024)で割った余りが配列の要素IDと見なされることを利用している場合
例)
@str1[1024] は @str1[0] と同じになることを利用したプログラミングを行っているなど
|
|
<対応方法>
上記の特性を利用せず、1024を超えた場合の処理を追加するか、配列の最大要素数を2048とした処理に修正してください。
|
(2) |
calldll(),calldll1()〜calldll5()関数で、@str1[]〜@str8[]、@@str1[]〜@@str8[]までがメモリー上で連続した領域であること利用して長い文字列を扱っている場合 |
|
<対応方法>
以下を参考に配列変数名を修正してください。
@str1[0] → @str1[0] | | @@str1[0] → @@str1[0] |
@str2[0] → &@str1[1024] | | @@str2[0] → &@@str1[1024] |
@str3[0] → @str2[0] | | @@str3[0] → @@str2[0] |
@str4[0] → &@str2[1024] | | @@str4[0] → &@@str2[1024] |
@str5[0] → @str3[0] | | @@str5[0] → @@str3[0] |
@str6[0] → &@str3[1024] | | @@str6[0] → &@@str3[1024] |
@str7[0] → @str4[0] | | @@str7[0] → @@str4[0] |
@str8[0] → &@str4[1024] | | @@str8[0] → &@@str4[1024] |
|
(3) |
getline(),getstring(),getselstring(),fread(),getenv(),strncpy()等、長い文字列を扱う可能性のある関数の使用において、配列変数の限界を超えた長い文字列を扱うために、@nextbyte を使用する等の工夫を使用したプログラミングを行っている場合や配列の最大要素数が変更された場合
|
|
<対応方法>
システム変数 @nextbyte を使用するように修正するか、配列の要素数を2048とした処理に修正してください。
|