質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Q&A

解決済

1回答

791閲覧

invalid type argument of unary '*' (have 'int')というエラーが出ます。なぜでしょうか?

Akira

総合スコア1

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

0グッド

0クリップ

投稿2022/04/24 06:11

ソースコードです。ポインタがよく分かりません。
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

void print(int *data, int num);
int get(int *data, int num, int index);
int sum(int *data, int num);
int *reverse(int *data, int num);

void print(int *data, int num)
{
int i;
for (i = 0; i < num; i++)
{
printf(" %d", *(data + i));
}
printf("\n");
}

int get(int *data, int num, int index)
{
if(index<num && index>=0)
{
return data[index];
}
else
{
return -1;
}

}

int sum(int data, int num)
{
if(num>0)
{
int i; int sum=0;
for(i = 0; i < num; i++)
{
sum=
(data[i]+sum);
}
}
else if(num==0)
{
return 0;
}
else
{
return -1;
}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/04/24 06:39

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、よけいな省略翻訳しないで出たそのママをコピペで提示してください
Akira

2022/04/24 06:45

prog2-2.c: In function 'sum': prog2-2.c:46:17: error: invalid type argument of unary '*' (have 'int') 46 | sum=*(data[i]+sum); | ^~~~~~~~~~~~~~ prog2-2.c: In function 'reverse': prog2-2.c:61:8: error: 'index' undeclared (first use in this function) 61 | if(index<num && index>0) | ^~~~~ prog2-2.c:61:8: note: each undeclared identifier is reported only once for each function it appears in prog2-2.c:71:16: warning: returning 'int' from a function with return type 'int *' makes pointer from integer without a cast [-Wint-conversion] 71 | return -1; | ^ In file included from prog2-2.c:9: prog2-2.c: In function 'test2': prog2-2.c:92:5: error: expected expression before ')' token 92 | assert() | ^~~~~~ prog2-2.c:93:1: error: expected ';' before '}' token 93 | } | ^ これがエラーコードです。
y_waiwai

2022/04/24 06:46

質問文は編集できるんで、そっちの方に追記しましょう
guest

回答1

0

ベストアンサー

int sum(int data, int num)

となっているのに、

sum=(data[i]+sum);

としているからエラーが出てます
dataは配列ではありません

投稿2022/04/24 06:47

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問