ページ 11

MAC

Posted: 2010年7月28日(水) 22:33
by IT太郎
学校の指定パソコンでしかたんくMACのパソコンでプログラミングを勉強しています。
やっぱりWindowsじゃエラーがでないのに、MACじゃエラーが出るというのはありえますか?
以下はWindowsならエラーがでないソースです。

#include <stdio.h>

int main()
{
char *p;

p = "MACってプログラミングに向いてない";

printf(p);

return 0;
}

私のMACではprintf(p);の部分がエラーとでます。
このソースコードは某参考書の内容を参考にしているので間違っている事はないはずです。

なぜMACだとprintf(p);の部分がエラーとなるのでしょうか?

Re:MAC

Posted: 2010年7月28日(水) 22:37
by 初級者
printf関数の第1引数が本当にそれでいいのか、調べてみましょう。

Re:MAC

Posted: 2010年7月28日(水) 22:41
by ashitana
Win Vista&Borland C++ 5.5.1
Win Vista&Visual C++ 2010   /*追記部分*/
でもエラーが出ないでコンパイルでき、実行できました。
やっぱりMacが・・・・?

/*追記部分*/
しかし、MacOS X(Xですよね?)はUNIXにお面をかぶせたも
のだと聞いていたのですが・・・
Macの"仕様(笑)"でしょうか? 画像

Re:MAC

Posted: 2010年7月28日(水) 22:51
by たかぎ
> やっぱりWindowsじゃエラーがでないのに、MACじゃエラーが出るというのはありえますか?

あり得ますし、逆もあり得ます。

> なぜMACだとprintf(p);の部分がエラーとなるのでしょうか?

Macで試しましたがエラーはでませんでした。
何をどのようにしたときに、どんなエラーが出たのかを正確に補足してください。

Re:MAC

Posted: 2010年7月28日(水) 22:52
by
printf関数を使っている所を
printf( "%s",p ) としてみて下さい。

Re:MAC

Posted: 2010年7月28日(水) 23:30
by ISLe
Ubuntu 10.04のgcc 4.4.3でコンパイルしたら

warning: format not a string literal and no format arguments

という警告は出ましたけど、エラーは出ませんでした。

#Cygwinのgcc3もgcc4も警告なし。何故?

Re:MAC

Posted: 2010年7月28日(水) 23:36
by たかぎ
> warning: format not a string literal and no format arguments

Macで、gcc-4.0やgcc-mp-4.5でコンパイルしても上記の警告は出ません。
4.2.1でコンパイルした場合だけ上記の警告が出ました。