我试图用Java实现一个简单的客户端 - 服务器应用程序.
这是代码:
Client.java
public class Client implements Runnable {
private String hostName;
private int portNumber;
private String message;
private Socket socket;
private PrintWriter writer;
private BufferedReader reader;
public Client(String hostName, int portNumber, String message) {
this.hostName = hostName;
this.portNumber = portNumber;
this.message = message;
}
public void connect() {
try {
socket = new Socket(hostName, portNumber);
writer = new PrintWriter(socket.getOutputStream(), true);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
writer.println(message);
} catch (UnknownHostException e) {
System.err.println("Could not resolve the host name …Run Code Online (Sandbox Code Playgroud) 我已经开始研究一个实现名为"PhoneBook"的结构的程序,该结构有两个成员:"length"和"allocatedSpace",两者都是"unsigned int"类型.结构是动态分配的.结构的两个成员在一个名为"InitializePhoneBook"的外部函数中分配.现在,当我尝试在"main"函数内打印结构的两个成员的值时,我得到"分段错误"错误.
PhoneBook.h
#ifndef PHONEBOOK_H
#define PHONEBOOK_H
struct PhoneBook
{
unsigned int length;
unsigned int allocatedSpace;
};
void InitializePhoneBook(struct PhoneBook *phoneBook);
void ClearPhoneBook(struct PhoneBook *phoneBook);
#endif
Run Code Online (Sandbox Code Playgroud)
PhoneBook.c
#include <stdlib.h>
#include "PhoneBook.h"
void InitializePhoneBook(struct PhoneBook *phoneBook)
{
phoneBook = malloc(sizeof(struct PhoneBook) * 1);
phoneBook->length = 0;
phoneBook->allocatedSpace = 1000;
}
void ClearPhoneBook(struct PhoneBook *phoneBook)
{
free(phoneBook);
}
Run Code Online (Sandbox Code Playgroud)
main.c中
#include <stdio.h>
#include <stdlib.h>
#include "PhoneBook.h"
int main(void)
{
struct PhoneBook *phoneBook;
InitializePhoneBook(phoneBook);
printf("%d %d\n", phoneBook->length, phoneBook->allocatedSpace);
ClearPhoneBook(phoneBook);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用"gdb"运行"./a.out"我得到:
Program …Run Code Online (Sandbox Code Playgroud) 我需要计算
1^2 + 2^2 + ... + n^2 modulo 10234573
Run Code Online (Sandbox Code Playgroud)
对于n高达20亿元.我需要使用本机C++库.我无法弄清楚如何做到这一点,因为它看起来像是一个巨大的数字.