mirror of
https://github.com/svnscha/mcp-windbg.git
synced 2026-10-16 20:32:50 +08:00
7523a38d23
* Prepare demo crashes to explore and introduce copilot-instructions.md. * Demo on analyzing structs * Comitting recent changes.
62 lines
1.7 KiB
C++
62 lines
1.7 KiB
C++
// complex-struct-nullptr.cpp
|
|
#include <iostream>
|
|
#include <cstring>
|
|
#include <ctime>
|
|
#include <string>
|
|
|
|
struct Address {
|
|
char street[32];
|
|
char city[16];
|
|
int zip;
|
|
};
|
|
|
|
struct Metadata {
|
|
time_t created;
|
|
int version;
|
|
char tag[8];
|
|
};
|
|
|
|
struct UserProfile {
|
|
int id;
|
|
char name[32];
|
|
Address address;
|
|
Metadata meta;
|
|
double balance;
|
|
int* preferences = nullptr;
|
|
size_t pref_count;
|
|
char* notes = nullptr;
|
|
};
|
|
|
|
void print_profile(const UserProfile* profile) {
|
|
std::cout << "ID: " << profile->id << "\n";
|
|
std::cout << "Name: " << profile->name << "\n";
|
|
std::cout << "Address: " << profile->address.street << ", " << profile->address.city << ", " << profile->address.zip << "\n";
|
|
std::cout << "Created: " << std::ctime(&profile->meta.created);
|
|
std::cout << "Version: " << profile->meta.version << ", Tag: " << profile->meta.tag << "\n";
|
|
std::cout << "Balance: $" << profile->balance << "\n";
|
|
std::cout << "Preferences: ";
|
|
for (size_t i = 0; i < profile->pref_count; ++i) {
|
|
std::cout << profile->preferences[i] << " ";
|
|
}
|
|
std::cout << "\nNotes: " << profile->notes << "\n";
|
|
}
|
|
|
|
int main() {
|
|
UserProfile* user = new UserProfile();
|
|
user->id = 42;
|
|
strcpy(user->name, "Ada Lovelace");
|
|
strcpy(user->address.street, "123 Computing Ave");
|
|
strcpy(user->address.city, "London");
|
|
user->address.zip = 12345;
|
|
user->meta.created = std::time(nullptr);
|
|
user->meta.version = 1;
|
|
strcpy(user->meta.tag, "alpha");
|
|
user->balance = 1234.56;
|
|
user->pref_count = 3;
|
|
user->preferences = new int[user->pref_count]{1, 2, 3};
|
|
print_profile(user);
|
|
delete[] user->preferences;
|
|
delete user;
|
|
return 0;
|
|
}
|