fork download
  1. #include <cstdio>
  2. #include <cstring>
  3.  
  4. #define GLOBAL
  5.  
  6. //GV.h
  7. GLOBAL int message_cnt;//何個メッセージが書かれたかの最大値を見る
  8. GLOBAL int message_graph_cnt;//メッセージを1から順に表示する
  9. GLOBAL int message_rest_flag;//メッセージが2つ以上残っていたら移動させない
  10. GLOBAL int pre_icon[1024];
  11. GLOBAL char pre_id[1024][255];//pre_id[配列数][文字数]
  12. GLOBAL char pre_message[3][1024][255];//pre_message[行目][配列数][文字数]
  13.  
  14.  
  15. //message.cpp
  16.  
  17. //プロジェクト中のあちこちからメッセージを受け取る関数。1ターンに複数のメッセージを受け取ることもあるので、
  18. //それを処理する。(敵を倒し、レベルが上がれば、「~に~ダメージ」「~をたおした」「レベルがあがった」の三つ)
  19. void message_add(int icon,char id[],char message[]){//アイコンの画像番号、名前、メッセージ
  20. char *tp;
  21. int i=0;
  22. message_cnt++;
  23. pre_icon[message_cnt]=icon;
  24. strncpy(pre_id[message_cnt],id,255);
  25. tp = strtok( message, "@" );/*↓おそらくここから問題の場所*/
  26. strncpy(pre_message[0][message_cnt],tp,255);
  27. while ( tp != NULL ) {
  28. i++;
  29. tp = strtok( NULL,"@" );
  30. if ( tp != NULL ) strncpy(pre_message[i][message_cnt],tp,255);
  31. }
  32. }
  33.  
  34. int main(void) {
  35. char id[255]="namari(namari)";
  36. message_add(0,id,"なんという偽物・・・@ちょっとだけ回復");
  37. printf("pre_icon = %d\n",pre_icon[1]);
  38. printf("pre_id = %s\n",pre_id[1]);
  39. printf("pre_message[0] = %s\n",pre_message[0][1]);
  40. printf("pre_message[1] = %s\n",pre_message[1][1]);
  41. printf("pre_message[2] = %s\n",pre_message[2][1]);
  42. return 0;
  43. }
Runtime error #stdin #stdout 0s 4316KB
stdin
Standard input is empty
stdout
Standard output is empty