#include <stdio.h>
#include <stdlib.h>
void reverse(char* lines[], int count)
{
for (int i = count-1; i >= 0; i--)
{
printf("%s", lines[i]);
}
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sortutil.h"
#include "reverse.h"
int getarray(char *lines[]);
void printarray(char *lines[], int max);
int main(int argc, char* argv[])
{
char* arr[100];
int numlines = getarray(arr);
printf("There are %d lines\n", numlines);
printarray(arr, numlines);
for (int i = 1; i < argc; i++)
{
if (strcmp(argv[i], "-s") == 0)
{
sortutil(arr);
printarray(arr, numlines);
}
if (strcmp(argv[i], "-r") == 0)
{
reverse(arr, numlines);
printarray(arr, numlines);
}
}
}
int getarray(char *lines[])
{
int i = 0;
char *text = (char *)malloc(200);
while (fgets(text, 200, stdin) != NULL)
{
lines[i] = text;
i++;
text = (char *)malloc(200);
}
return i;
}
void printarray(char *lines[], int max)
{
for (int i = 0; i < max; i++)
{
printf("%s\n\n", lines[i]);
}
}
주 기능을 컴파일 할 때 'reverse'에 대한 정의되지 않은 참조가 있음을 알려줍니다. 나는 #include "reverse.h"
을했기 때문에 역 기능을 보는 데 문제가 없어야합니다. 내가 뭔가를 놓치고 있습니까
"reverse.h"는 역방향에 대해 무엇을 말합니까? 컴파일 또는 링크 중 오류가 발생합니까? –
@Mike 링크가 분명합니다. "정의되지 않은 참조"는 연계 문제입니다. – littleadv