Schon wieder Problem mit Strukturen

cesupa

Erfahrenes Mitglied
Hallo,

mal wieder hab ich ein Problem mit Strukturen. Unzwar möchte ich mir meinen eigenen kleinen FTP-Client programmieren, hab aber wie schon gesagt ein Strukturenproblem. Für das Programm hab ich mir eine Klasse zugelegt:

Code:
#ifndef _FTP_H
#define _FTP_H

#include <iostream>
#include "socket_init_2_0.h"
using namespace std;

struct ftp_connect{
       SOCKET c;
       char ip[32];
       char *user,*pass;
       int port;
       };

class ftp
{
      public:
             ftp();
             ~ftp();
             int ftp::fconnect(char *url,int port=21);
      private:
              ftp_connect *con;
              
      };
      

#endif

Die Struktur verwende ich zum erstenmal in der Funktion fconnect():

Code:
#include "ftp.h"

ftp::ftp()
{
          con=new ftp_connect();
          con->port=21;
 }
 
ftp::~ftp()
{
           delete con;
           }
 
int ftp::fconnect(char *url,int port)
{
       long rc;
       int error=0;
       char buf[32];
       rc=startwsa();
       
       cout<<"Suche IP!"<<endl;
       
       if((error=get_ip(url,buf))!=0)
       return error;
       cout<<"Kopiere IP '"<<buf<<"'"<<endl;
       strcpy(con->ip,buf);                                  //Zugriffsverletzung 
       
       cout<<"IP gefunden: "<<con->ip<<endl;
       con->port=port;
       if((error=client_init(con->c,buf,port,AF_INET,SOCK_STREAM,0))!=1)
       return error;
       
       return error;
       }

Der Debugger vom Dev-C++ sagt mir, dass an der der markierten Stelle eine Zugriffsverletzung stattfindet, nur weiß ich noch nicht so genau warum. Könnt ihr mir da weiterhelfen? Wäre euch sehr dankbar.

Gruß
cesupa
 
Hi.

Dann setz doch mal einen Breakpoint bei der Zeile und schau dir die Werte der Variablen an.

Verweisen beide auf gültige Adressen? Ist buf ordentlich terminiert?

Gruß
 

Neue Beiträge

Zurück