Hey guys I'm fairly new at C++ and this is for my term project. When I make an IPADDRESS object on the STACK, the main.cpp file will run until the deconstructer member is called for the IPADDRESS object. The first section runs just fine, and the second section returns the same output, just with the segmentation error.
// Main file
#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
#include "IPInfo.h"
using namespace std;
// Function declaration of display()
void displayInfo(IPADDRESS);
int main(){
const char* address = "cbc.ca";
const char* command = "nslookup ";
char buf[256];
strcpy(buf, command);
strcat(buf, address);
string* Info = new(nothrow) string[256]; // Allocate 256 bytes to this string
*Info = system(buf); // Allocate the response from the command line to Info (which is on the heap)
cout << Info << endl << *Info << endl << "===============================" << endl << endl;
delete[] Info;
IPADDRESS test("cbc.ca");
displayInfo(test);
// Displays but never exits the program correctly
return 0;
}
void displayInfo(IPADDRESS Website){
string* displayBus;
displayBus = Website.getInfo();
cout << displayBus;
}
// Header file
#ifndef IPInfo_H
#define IPInfo_H
#include <bits/stdc++.h>
#include <string>
#include <iostream>
using namespace std;
class IPADDRESS{
private:
const char* command = "nslookup ";
string url;
string info;
string address;
int searchFor(string locator); // Find a substring in the getInfo string
public:
string* getInfo(); // Using the system("nslookup") call, get the info (Will be allocated to heap)
IPADDRESS(string website);
~IPADDRESS();
string getIPAddress(); // Using searchFor() get rid of unneeded characters and dump the IPAddress to a string
string getName(); // Also output the name
};
IPADDRESS::IPADDRESS(string website){
url = website;
}
IPADDRESS::~IPADDRESS(){
}
#endif