我对C非常陌生,我试图将main函数之后从decode函数返回的数组赋值给一个指针,以便我可以在我的指针中使用它程序(例如打印它)。代码编译,但当我运行CGI时出现“错误500”。如何分配一个函数返回的变量
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <stdlib.h>
int main(int argc, char **argv, char **envp) {
printf("Content-type: text/html\n\n");
char *decode(char *url);
char *qPtr;
char *ePtr;
char *emailClean;
if(qPtr = getenv("QUERY_STRING")) {
char Buffer[256];
char *Token;
char username[80], password[80], email[80];
strncpy(Buffer, qPtr, 255); //copy Env variable "QUERY_STRING" into qPtr pointer
Token = strtok(Buffer, "&"); //get first query
sscanf(Token, "username=%s", username); //gets value of username field input
Token = strtok(NULL, "&"); //get second query
sscanf(Token, "password=%s", password); //gets value of password field input
Token = strtok(NULL, "&"); //get third query
sscanf(Token, "email=%s", email); //gets value of email field input
ePtr = email;
//decode email
emailClean = decode(ePtr);
printf("%s\n", *emailClean);
}
else { printf("<p>Error: did not get a QUERY_STRING variable."); }
}
char *decode(char *url) {
char *emailNew;
int i = 0;
int y = 0;
char current = url[i];
while(current != '%') {
emailNew[i] = current;
y++;
current = url[i++];
}
return emailNew;
}
谢谢!
可能要修复您的格式;更容易发现错误。 – Ponkadoodle