C++
1/* ソース.cpp*/ 2#include <DxLib.h> 3#include "ヘッダー.h" 4 5int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 6 LPSTR lpCmdLine, int nCmdShow) 7{ 8 ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更と初期化と裏画面設定 9 int siro = GetColor(255, 255, 255); 10 while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {//メインループ 11 DrawFormatString(176, 392, siro, "%s", Kotoba(0, 0)); 12 } 13 DxLib_End(); 14 return 0; 15} 16 17/* ソース2.cpp*/ 18typedef struct { 19 char lastcode; 20 char pic; 21 char hito; 22 char kotoba[80]; 23} hanashi; 24 25hanashi kaiwa[40][45] = { 26 { 27 {0,0,0,"サラダ記念日"}, 28 } 29}; 30 31char Kotoba(int turn, int num) { 32 return kaiwa[turn][num].kotoba[80]; 33} 34 35/* ヘッダー.h*/ 36#pragma once 37char Kotoba(int turn, int num);
画面上に「サラダ記念日」という言葉を出したいのですが、真っ黒な画面しか表示されません。
おそらくcharの仕様が良く分かっていない事が原因だと思われますが、あまりよく分かっていません。
また、エラーこそ出ませんが、下の警告メッセージは出てきます。
警告 C6385 'kaiwa[turn][num].kotoba' から無効なデータを読み取っています: 読み取り可能なサイズは '80' バイトですが、'81' バイトを読み取る可能性があります。
何が原因なのか、詳しく教えてください。
charがっていうより、C言語がわかってないよね。
やりたいことは「サラダ記念日」と出力させることでいいんだよね?
正直、「何見てこうなった?」ってくらい変なソースなんだけど。
回答1件
あなたの回答
tips
プレビュー