教えてください。
下のPrintLabelって関数に
複数の文字列を渡したいんですが、
下のようにするとprintfでエラーになります。
渡し方が間違ってるのかと思うんですが
どうやるのが正しいやり方でしょうか?
都合でPrintLabelは変更できません。
#include stdafx.h
void PrintLabel(char **label);
int main(int argc, char* argv[])
{
char buf[][256] = {1, 2, NULL};
PrintLabel((char **)buf);
return 0;
}
void PrintLabel(char **label)
{
while (*label) {
printf(%s\n, *label++);
}
}
↓可変長引数での例
#include <stdio.h>
#include <stdarg.h>
void print(const char* format, ...) {
const char* arg;
va_list argptr;
va_start(argptr, format);
while ( (arg = va_arg(argptr,const char*)) != NULL ) {
printf(format,arg);
}
va_end(argptr);
}
int main() {
print([%s] , one, two, NULL);
return 0;
}
> 都合でPrintLabelは変更できません。
おっとっと。
#include <stdio.h>
void PrintLabel(char **label)
{
while (*label) {
printf(%s\n, *label++);
}
}
int main() {
char* labels[] = { one, two, NULL };
PrintLabel(labels);
return 0;
}
ありがとうございます。
おかげさまでうまく行きました。