猿问

无法解释的外部符号?

// p8.4 The functional approach to string sorting
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#define BUF_LEN 256            // Input buffer length
#define INIT_NSTR 2            // Initial number of strings
#define NSTR_INCR 2            // Increment to number of strings

char* str_in();                 // Reads a string
void str_sort(const char**, size_t);    // Sorts an array for strings
void swap(const char**, const char**);  // Swaps two pointers
void str_out(const char* const*, size_t);  // Output the strings
void free_memory(char**, size_t);       // Free all heap memory

// Function main  - execution starts here
int main(void)
{
	size_t pS_size = INIT_NSTR;           // count of pS elements
	char **pS = calloc(pS_size, sizeof(char*));   // Array of string pinters
	if(!pS)
	{
		printf("Failed to allocate memory for string pointers.\n");
		exit(1);
	}

	char **pTemp = NULL;               // Tmeporary pointer

	size_t str_count = 0;              // Number of strings read
	char *pStr = NULL;                 // String pointer
	printf("Enter one string per line. Press Enter to end:\n");
	while((pStr = str_in()) != NULL)
	{
		if(str_count == pS_size)
		{
			pS_size += NSTR_INCR;
			if(!(pTemp = realloc(pS, pS_size*sizeof(char*))))
			{
				printf("Memory allocation for array of strings failed.\n");
				return 2;
			}
			pS = pTemp;
		}
		pS[str_count++] = pStr;
	}

	str_sort(pS, str_count);         // Sort strings
	str_out(pS, str_count);          // Output strings
	free_memory(pS, str_count);      // Free all heap memory
	return 0;
}

/*这是在Pelles C编译器中敲出的代码,链接时显示:
POLINK: error: Unresolved external symbol 'str_in'.
POLINK: error: Unresolved external symbol 'str_sort'.
POLINK: error: Unresolved external symbol 'str_out'.
POLINK: error: Unresolved external symbol 'free_memory'.
编译时显示:
F:\c_files\p8.4.c(48): warning #2145: Assignment of 'char * *' to 'const char * *'.
F:\c_files\p8.4.c(49): warning #2145: Assignment of 'char * *' to 'const char * const *'.
不知道问题在哪*/


桩童
浏览 1230回答 0
0回答
随时随地看视频慕课网APP
我要回答